💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    로딩 중이에요... 🐣

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    32 6 React & Django 인증 심화 5 소셜 로그인(OAuth2) 연동하기 (Google, Facebook, Kakao) | ✅ 편저: 코담 운영자

    🌐 React & Django 인증 심화 5 _ 소셜 로그인(OAuth2) 연동하기 (Google, Facebook, Kakao)

    이번 포스트에서는 Django 백엔드와 React 프론트엔드에서 Google, Facebook, Kakao 소셜 로그인(OAuth2) 을 연동하는 방법을 다룹니다.


    📌 개요

    소셜 로그인은 사용자가 별도의 회원가입 없이 기존 소셜 계정(Google, Facebook, Kakao 등)으로 애플리케이션에 로그인할 수 있게 합니다. Django에서는 , 그리고 `` 를 활용해 OAuth2 인증을 구현할 수 있습니다.

    React 프론트엔드에서는 백엔드의 OAuth2 엔드포인트를 호출하여 인증을 처리합니다.


    🔑 15️⃣ Django 소셜 로그인 설정

    📁 패키지 설치

    pip install dj-rest-auth django-allauth social-auth-app-django
    

    📁 settings.py

    INSTALLED_APPS 추가:

    INSTALLED_APPS += [
        'dj_rest_auth',
        'allauth',
        'allauth.account',
        'allauth.socialaccount',
        'allauth.socialaccount.providers.google',
        'allauth.socialaccount.providers.facebook',
        'allauth.socialaccount.providers.kakao',
    ]
    

    Authentication Backends 설정:

    AUTHENTICATION_BACKENDS = (
        'django.contrib.auth.backends.ModelBackend',
        'allauth.account.auth_backends.AuthenticationBackend',
    )
    

    SITE_ID 및 Redirect 설정:

    SITE_ID = 1
    LOGIN_REDIRECT_URL = '/'
    

    Google OAuth2 Client 정보 등록:

    SOCIALACCOUNT_PROVIDERS = {
        'google': {
            'APP': {
                'client_id': 'GOOGLE_CLIENT_ID',
                'secret': 'GOOGLE_CLIENT_SECRET',
                'key': ''
            }
        },
        'facebook': {
            'APP': {
                'client_id': 'FACEBOOK_APP_ID',
                'secret': 'FACEBOOK_APP_SECRET',
                'key': ''
            }
        },
        'kakao': {
            'APP': {
                'client_id': 'KAKAO_REST_API_KEY',
                'secret': 'KAKAO_CLIENT_SECRET',
                'key': ''
            }
        },
    }
    

    📁 urls.py

    from django.urls import path, include
    
    urlpatterns += [
        path('auth/', include('dj_rest_auth.urls')),
        path('auth/social/', include('allauth.socialaccount.urls')),
    ]
    

    🔄 16️⃣ React에서 소셜 로그인 처리

    프론트엔드에서는 Django가 제공하는 소셜 로그인 URL에 리디렉션하도록 구현합니다.

    📁 SocialLoginButton.js

    import React from 'react';
    
    const SocialLoginButton = ({ provider }) => {
      const handleLogin = () => {
        window.location.href = `http://localhost:8000/auth/social/login/${provider}/`;
      };
    
      return (
        <button onClick={handleLogin}>
          {provider} 계정으로 로그인
        </button>
      );
    };
    
    export default SocialLoginButton;
    

    사용 예제:

    <SocialLoginButton provider="google" />
    <SocialLoginButton provider="facebook" />
    <SocialLoginButton provider="kakao" />
    

    🛠 추가 보안 고려사항

    • HTTPS 적용: OAuth2 리다이렉션에는 HTTPS가 필수입니다.
    • CORS 및 CSRF: 이전 포스트의 설정으로 쿠키와 CSRF 보호가 유지됩니다.
    • 프론트엔드 리다이렉션 처리: 로그인 후 프론트엔드로 돌아올 수 있도록 백엔드의 callback URL 설정 필요.

    ✅ 마무리

    이번 포스트에서는 Django와 React에서 Google, Facebook, Kakao 소셜 로그인을 연동하여 OAuth2 인증을 구현했습니다. 이를 통해 사용자에게 더 간편한 로그인 경험을 제공할 수 있습니다.

    다음 포스트에서는 모바일 환경(React Native)에서 소셜 로그인 및 인증 처리를 이어서 다룹니다.

    TOP
    preload preload